<?php

	include '../config.inc.php';
	class MyDB{
		protected $pdo;
		protected $showError;
		//连接数据库
		public function __construct($showError=TRUE) {
			try{
				$this->pdo=new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER,DB_PWD);
				$this->pdo->query("set names utf8;");
				$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
			}catch(PDOException $e){
				echo "连接失败，原因为：".$e->getMessage();
				exit();
			}
		}
		/*
			 参数说明
			int			$debug			0不开启,1开启，是否开启调试，开启则输出sql语句
			int			$mode			0	返回数组
			1	返回单条记录
			2	返回行数
			string		$table			数据库表
			string		$fields			需要查询的数据库字段，允许为空，默认为查找全部
			string		$sqlwhere		查询条件，允许为空
			string		$orderby		排序，允许为空，默认为id倒序
		*/
		function hrSelect($debug, $mode, $table, $fields="*", $sqlwhere="", $orderby="tbid desc"){
			if($debug){
				if($mode == 2){
					echo "select count(*) from $table where 1=1 $sqlwhere";
				}elseif($mode == 1){
					echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
				}
				else{
					echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
				}
				exit;
			}else{
				if($mode == 2){
					$rs = $this->pdo->query("select count(*) from $table where 1=1 $sqlwhere");
					$return = $rs->fetchColumn();
				}elseif($mode == 1){
					$rs = $this->pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
					$return = $rs->fetch();
				}else{
					$rs = $this->pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
					$return = $rs->fetchAll();
				}
				return $return;
			}
		}
		/*
			 参数说明
			int			$debug			0不开启,1开启，是否开启调试，开启则输出sql语句
			int			$mode			0	默认insert，无返回信息
			1	返回执行条目数
			2	返回最后一次插入记录的id
			string		$table			数据库表
			string		$fields			需要插入数据库的字段
			string		$values			需要插入数据库的信息，必须与$fields一一对应
		*/
		function hrInsert($debug, $mode, $table, $fields, $values){
			if($debug){
				echo "insert into $table ($fields) values ($values)";
				exit;
			}else{
				if($mode == 2){
					$this->pdo->query("insert into $table ($fields) values ($values)");
					$return = $this->pdo->lastInsertId();
				}elseif($mode == 1){
					$return = $this->pdo->exec("insert into $table ($fields) values ($values)");
				}else{
					$this->pdo->query("insert into $table ($fields) values ($values)");
					$return = NULL;
				}
				return $return;
			}
		}
		/*
			 参数说明
			int			$debug			0不开启,1开启，是否开启调试，开启则输出sql语句
			int			$mode			0	默认update，无返回信息
			1	返回执行条目数
			string		$table			数据库表
			string		$set			需要更新的字段及内容，格式：a='abc',b=2,c='2010-10-10 10:10:10'
			string		$sqlwhere		修改条件，允许为空
		*/
		function hrUpdate($debug, $mode, $table, $set, $sqlwhere=""){
			if($debug){
				echo "update $table set $set where 1=1 $sqlwhere";
				exit;
			}else{
				if($mode==1){
					$return = $this->pdo->exec("update $table set $set where 1=1 $sqlwhere");
	
				}else{
					$this->pdo->query("update $table set $set where 1=1 $sqlwhere");
					$return = NULL;
				}
				return $return;
			}
		}
		/*
			 参数说明
			int			$debug			0不开启,1开启，是否开启调试，开启则输出sql语句
			int			$mode			0	默认delete，无返回信息
			1	返回执行条目数
			string		$table			数据库表
			string		$sqlwhere		删除条件，允许为空
		*/
		function hrDelete($debug, $mode, $table, $sqlwhere=""){
			if($debug){
				echo "delete from $table where 1=1 $sqlwhere";
				exit;
			}else{
				if($mode == 1){
					$return = $this->pdo->exec("delete from $table where 1=1 $sqlwhere");
				}else{
					$this->pdo->query("delete from $table where 1=1 $sqlwhere");
					$return = NULL;
				}
				return $return;
			}
		}
	}
?>